using ERPBackend.Models;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace ERPBackend.Services
{
    public interface IPurchaseStockInService
    {
        Task<IEnumerable<PurchaseStockIn>> GetAllPurchaseStockInsAsync();
        Task<PurchaseStockIn?> GetPurchaseStockInByIdAsync(int id);
        Task<PurchaseStockIn?> GetPurchaseStockInByCodeAsync(string stockInCode);
        Task<PurchaseStockIn> CreatePurchaseStockInAsync(PurchaseStockIn purchaseStockIn);
        Task<bool> UpdatePurchaseStockInAsync(PurchaseStockIn purchaseStockIn);
        Task<bool> DeletePurchaseStockInAsync(int id);
        Task<bool> ChangePurchaseStockInStatusAsync(int id, string status);
        Task<bool> ApprovePurchaseStockInAsync(int id, int approverId, string? comments);
        Task<int> GetTotalPurchaseStockInsAsync();
        Task<IEnumerable<PurchaseStockIn>> GetPurchaseStockInsPagedAsync(int page, int pageSize);
    }
}